/**
 * Alipay.com Inc.
 * Copyright (c) 2004-2018 All Rights Reserved.
 */
package com.citytsm.gateway.sdk.request;

import com.citytsm.gateway.sdk.utils.ApiConstants;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 用于真正发起请求的request，sdk使用者无需直接使用该类。
 * @author jiangbingkun
 * @version $Id: PtcApiRequest.java, v 0.1 2018年01月05日 下午6:44 jiangbingkun Exp $
 */
public class PtcApiRequest {

    @JsonProperty(ApiConstants.METHOD)
    private String method;

    /**appid*/
    @JsonProperty(ApiConstants.APP_ID)
    private String appId;

    /**调用方提交的业务参数，JSON格式字符串.*/
    @JsonProperty(ApiConstants.BIZ_CONTENT_KEY)
    private String bizContent;

    /**请求的接口版本*/
    private String version;

    /**客户端发起调用的时间戳，即1970年1月1日至今的毫秒数*/
    private Long timestamp;

    /**商户生成签名字符串所使用的签名算法类型，统一使用RSA2*/
    @JsonProperty(ApiConstants.SIGN_TYPE)
    private String signType;

    /**商户请求参数的签名串*/
    @JsonInclude(Include.NON_NULL)
    private String sign;

    /**用于幂等控制*/
    @JsonProperty(ApiConstants.REQUEST_ID)
    private String reqId;

    @JsonProperty(ApiConstants.CHARSET)
    private String charset;

    public String getMethod() {
        return method;
    }

    public void setMethod(String method) {
        this.method = method;
    }

    public String getReqId() {
        return reqId;
    }

    public void setReqId(String reqId) {
        this.reqId = reqId;
    }

    public String getBizContent() {
        return bizContent;
    }

    public void setBizContent(String bizContent) {
        this.bizContent = bizContent;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public Long getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(Long timestamp) {
        this.timestamp = timestamp;
    }

    public String getSignType() {
        return signType;
    }

    public void setSignType(String signType) {
        this.signType = signType;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getCharset() {
        return charset;
    }

    public void setCharset(String charset) {
        this.charset = charset;
    }
}